<?php

namespace App\Http\Controllers\V1\Admin;

use App\Http\Controllers\V1\Admin\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class FileController extends BaseController
{

//    public function upload(Request $request)
//    {
//        $file = $request->file('file');
//        $folder=$request->input('folder');
//        if(empty($folder)){
//            $folder="uploads";
//        }
//        // 2.是否符合文件类型 getClientOriginalExtension 获得文件后缀名
//        $fileExtension = $file->getClientOriginalExtension();
//
//        //原上传文件名称
//        $clientName = $file->getClientOriginalName();
//
//        // 5.每天一个文件夹,分开存储, 生成一个随机文件名
//        $fileName = $folder."/".date('Y_m_d').'/'.md5($clientName).'.'. $fileExtension;
//        $disk = Storage::disk('oss');
//        $disk->put($fileName, file_get_contents($file));
//        $url = $disk->getUrl($fileName);
//
//        return ajax_output(200,"成功",$url);
//    }



    public function upload(Request $request)
    {
        // 验证文件
        $request->validate([
            'file' => 'required|file|max:2048', // 2048 是文件大小的最大值，单位是 KB
        ]);

        // 获取文件实例
        $file = $request->file('file');

        // 获取当前日期并格式化为 Y-m-d
        $date = date('Y-m-d');

        // 定义文件将要保存的路径（在public/uploads/日期目录下）
        $path = 'uploads/' . $date . '/';

        // 确保目录存在
        Storage::disk('public')->makeDirectory($path);

        // 使用time()或其他方法来生成一个唯一的文件名
        $fileName = time() . '_' . $file->getClientOriginalName();

        // 保存文件到public目录的uploads/日期子目录下
        $file->storeAs($path, $fileName, 'public');

        // 获取文件的URL（这将是基于public目录的URL）
        $fileUrl = Storage::disk('public')->url($path . $fileName);

        return ajax_output(200,"成功",$fileUrl);
    }
}
